/**
 * @file lv_conf.h
 * LVGL v8.2.0 配置文件
 */

/*
 * 复制此文件为 `lv_conf.h`
 * 1. 直接放在 `lvgl` 文件夹旁边
 * 2. 或者放在其他位置，然后：
 *    - 定义 `LV_CONF_INCLUDE_SIMPLE`
 *    - 将路径添加为包含路径
 */

/* clang-format off */
#if 1 /*设置为"1"启用内容*/

#ifndef LV_CONF_H
#define LV_CONF_H

#include <stdint.h>

/*====================
   颜色设置
 *====================*/

/*颜色深度: 1 (每像素1字节), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/
#define LV_COLOR_DEPTH 32

/*交换RGB565颜色的两个字节。如果显示接口为8位(如SPI)时有用*/
#define LV_COLOR_16_SWAP 0

/*启用更复杂的绘图例程来管理屏幕透明度。
 *可用于UI在另一层上方时，例如OSD菜单或视频播放器。
 *需要 `LV_COLOR_DEPTH = 32` 颜色，并且屏幕的 `bg_opa` 应设置为非 LV_OPA_COVER 值*/
#define LV_COLOR_SCREEN_TRANSP 0

/*调整颜色混合函数的舍入。GPU计算颜色混合的方式可能不同。
 *0: 向下舍入, 64: 从x.75向上舍入, 128: 从一半向上舍入, 192: 从x.25向上舍入, 254: 向上舍入 */
#define LV_COLOR_MIX_ROUND_OFS (LV_COLOR_DEPTH == 32 ? 0: 128)

/*图像中此颜色的像素如果是色度键将不会被绘制*/
#define LV_COLOR_CHROMA_KEY lv_color_hex(0x00ff00)         /*纯绿色*/

/*=========================
   内存设置
 *=========================*/

/*1: 使用自定义malloc/free, 0: 使用内置的 `lv_mem_alloc()` 和 `lv_mem_free()`*/
#define LV_MEM_CUSTOM 0
#if LV_MEM_CUSTOM == 0
    /*可用于 `lv_mem_alloc()` 的内存大小(字节)(>= 2kB)*/
    #define LV_MEM_SIZE (128U * 1024U)          /*[字节]*/

    /*为内存池设置地址，而不是将其分配为普通数组。也可以在外部SRAM中。*/
    #define LV_MEM_ADR 0     /*0: 未使用*/
    /*提供一个内存分配器来获取LVGL的内存池，而不是地址。例如 my_malloc*/
    #if LV_MEM_ADR == 0
        //#define LV_MEM_POOL_INCLUDE your_alloc_library  /* 如果使用外部分配器，取消注释*/
        //#define LV_MEM_POOL_ALLOC   your_alloc          /* 如果使用外部分配器，取消注释*/
    #endif

#else       /*LV_MEM_CUSTOM*/
    #define LV_MEM_CUSTOM_INCLUDE <stdlib.h>   /*动态内存函数的头文件*/
    #define LV_MEM_CUSTOM_ALLOC   malloc
    #define LV_MEM_CUSTOM_FREE    free
    #define LV_MEM_CUSTOM_REALLOC realloc
#endif     /*LV_MEM_CUSTOM*/

/*渲染和其他内部处理机制期间使用的中间内存缓冲区数量。
 *如果没有足够的缓冲区，您将看到错误日志消息。 */
#define LV_MEM_BUF_MAX_NUM 16

/*使用标准的 `memcpy` 和 `memset` 代替LVGL自己的函数。(可能更快，也可能不快)。*/
#define LV_MEMCPY_MEMSET_STD 0

/*====================
   HAL 设置
 *====================*/

/*默认显示刷新周期。LVG将以此周期时间重绘更改的区域*/
#define LV_DISP_DEF_REFR_PERIOD 30      /*[毫秒]*/

/*输入设备读取周期(毫秒)*/
#define LV_INDEV_DEF_READ_PERIOD 30     /*[毫秒]*/

/*使用自定义滴答源，告诉经过的时间(毫秒)。
 *它消除了手动使用 `lv_tick_inc()` 更新滴答的需要)*/
#define LV_TICK_CUSTOM 1
#if LV_TICK_CUSTOM
    #define LV_TICK_CUSTOM_INCLUDE  <sysinfoapi.h>        /*系统时间函数的头文件*/
    #define LV_TICK_CUSTOM_SYS_TIME_EXPR (GetTickCount())     /*计算当前系统时间(毫秒)的表达式*/
#endif   /*LV_TICK_CUSTOM*/

/*默认每英寸点数。用于初始化默认大小，例如小部件大小，样式填充。
 *(不太重要，您可以调整它以修改默认大小和间距)*/
#define LV_DPI_DEF 130     /*[像素/英寸]*/

/*=======================
 * 功能配置
 *=======================*/

/*-------------
 * 绘图
 *-----------*/

/*启用复杂绘图引擎。
 *需要绘制阴影、渐变、圆角、圆形、圆弧、斜线、图像变换或任何蒙版*/
#define LV_DRAW_COMPLEX 1
#if LV_DRAW_COMPLEX != 0

    /*允许缓冲一些阴影计算。
    *LV_SHADOW_CACHE_SIZE 是最大缓冲的阴影大小，其中阴影大小为 `shadow_width + radius`
    *缓存有 LV_SHADOW_CACHE_SIZE^2 的RAM成本*/
    #define LV_SHADOW_CACHE_SIZE 0

    /*设置最大缓存的圆形数据数量。
    *1/4圆的周长被保存用于抗锯齿
    *每个圆形使用半径 * 4 字节(最常用的半径被保存)
    *0: 禁用缓存 */
    #define LV_CIRCLE_CACHE_SIZE 4
#endif /*LV_DRAW_COMPLEX*/

/*默认图像缓存大小。图像缓存保持图像打开。
 *如果只使用内置图像格式，缓存没有真正优势。(即，如果没有添加新的图像解码器)
 *对于复杂的图像解码器(例如PNG或JPG)，缓存可以节省连续打开/解码图像。
 *但是打开的图像可能会消耗额外的RAM。
 *0: 禁用缓存*/
#define LV_IMG_CACHE_DEF_SIZE   0

/*每个渐变允许的停止点数。增加此值以允许更多停止点。
 *每个额外的停止点增加 (sizeof(lv_color_t) + 1) 字节*/
#define LV_GRADIENT_MAX_STOPS       2

/*默认渐变缓冲区大小。
 *当LVGL计算渐变"映射"时，可以将它们保存到缓存中以避免再次计算。
 *LV_GRAD_CACHE_DEF_SIZE 以字节设置此缓存的大小。
 *如果缓存太小，映射将仅在绘图需要时分配。
 *0表示无缓存。*/
#define LV_GRAD_CACHE_DEF_SIZE      0

/*允许对渐变进行抖动(在有限颜色深度的显示器上实现视觉平滑的颜色渐变)
 *LV_DITHER_GRADIENT 意味着分配对象渲染表面的一行或两行以上
 *内存消耗的增加是 (32位 * 对象宽度) 加上如果使用误差扩散则为 24位 * 对象宽度 */
#define LV_DITHER_GRADIENT      0
#if LV_DITHER_GRADIENT
    /*添加对误差扩散抖动的支持。
     *误差扩散抖动获得更好的视觉效果，但意味着绘图时更多的CPU消耗和内存。
     *内存消耗的增加是 (24位 * 对象宽度)*/
    #define LV_DITHER_ERROR_DIFFUSION   0
#endif

/*旋转分配的最大缓冲区大小。
 *仅在显示驱动中启用软件旋转时使用。*/
#define LV_DISP_ROT_MAX_BUF (10*1024)

/*-------------
 * GPU
 *-----------*/

/*使用STM32的DMA2D (又名 Chrom Art) GPU*/
#define LV_USE_GPU_STM32_DMA2D 0
#if LV_USE_GPU_STM32_DMA2D
    /*必须定义以包含目标处理器的CMSIS头文件路径
    例如 "stm32f769xx.h" 或 "stm32f429xx.h"*/
    #define LV_GPU_DMA2D_CMSIS_INCLUDE
#endif

/*使用NXP的PXP GPU iMX RTxxx平台*/
#define LV_USE_GPU_NXP_PXP 0
#if LV_USE_GPU_NXP_PXP
    /*1: 为PXP添加默认的裸机和FreeRTOS中断处理例程(lv_gpu_nxp_pxp_osa.c)
    *   并在lv_init()期间自动调用lv_gpu_nxp_pxp_init()。注意，为了使用FreeRTOS OSA，
    *   必须定义符号SDK_OS_FREE_RTOS，否则选择裸机实现。
    *0: 必须在lv_init()之前手动调用lv_gpu_nxp_pxp_init()
    */
    #define LV_USE_GPU_NXP_PXP_AUTO_INIT 0
#endif

/*使用NXP的VG-Lite GPU iMX RTxxx平台*/
#define LV_USE_GPU_NXP_VG_LITE 0

/*使用SDL渲染器API*/
#define LV_USE_GPU_SDL 0
#if LV_USE_GPU_SDL
    #define LV_GPU_SDL_INCLUDE_PATH <SDL2/SDL.h>
    /*纹理缓存大小，默认8MB*/
    #define LV_GPU_SDL_LRU_SIZE (1024 * 1024 * 8)
    /*用于掩码绘制的自定义混合模式，如果需要链接较旧的SDL2库，请禁用*/
    #define LV_GPU_SDL_CUSTOM_BLEND_MODE (SDL_VERSION_ATLEAST(2, 0, 6))
#endif

/*-------------
 * 日志
 *-----------*/

/*启用日志模块*/
#define LV_USE_LOG 1
#if LV_USE_LOG

    /*应添加的日志重要性：
    *LV_LOG_LEVEL_TRACE       大量日志提供详细信息
    *LV_LOG_LEVEL_INFO        记录重要事件
    *LV_LOG_LEVEL_WARN        记录不需要但未导致问题的情况
    *LV_LOG_LEVEL_ERROR       仅关键问题，系统可能失败时
    *LV_LOG_LEVEL_USER        仅用户添加的日志
    *LV_LOG_LEVEL_NONE        不记录任何内容*/
    #define LV_LOG_LEVEL LV_LOG_LEVEL_WARN

    /*1: 使用'printf'打印日志；
    *0: 用户需要使用 `lv_log_register_print_cb()` 注册回调*/
    #define LV_LOG_PRINTF 1

    /*在产生大量日志的模块中启用/禁用 LV_LOG_TRACE*/
    #define LV_LOG_TRACE_MEM        1
    #define LV_LOG_TRACE_TIMER      1
    #define LV_LOG_TRACE_INDEV      1
    #define LV_LOG_TRACE_DISP_REFR  1
    #define LV_LOG_TRACE_EVENT      1
    #define LV_LOG_TRACE_OBJ_CREATE 1
    #define LV_LOG_TRACE_LAYOUT     1
    #define LV_LOG_TRACE_ANIM       1

#endif  /*LV_USE_LOG*/

/*-------------
 * 断言
 *-----------*/

/*如果操作失败或发现无效数据，启用断言。
 *如果启用了LV_USE_LOG，失败时将打印错误消息*/
#define LV_USE_ASSERT_NULL          1   /*检查参数是否为NULL。(非常快，推荐)*/
#define LV_USE_ASSERT_MALLOC        1   /*检查内存是否成功分配。(非常快，推荐)*/
#define LV_USE_ASSERT_STYLE         0   /*检查样式是否正确初始化。(非常快，推荐)*/
#define LV_USE_ASSERT_MEM_INTEGRITY 0   /*在关键操作后检查 `lv_mem` 的完整性。(慢)*/
#define LV_USE_ASSERT_OBJ           0   /*检查对象的类型和存在性(例如未删除)。(慢)*/

/*断言发生时添加自定义处理程序，例如重启MCU*/
#define LV_ASSERT_HANDLER_INCLUDE <stdint.h>
#define LV_ASSERT_HANDLER while(1);   /*默认暂停*/

/*-------------
 * 其他
 *-----------*/

/*1: 显示CPU使用率和FPS计数*/
#define LV_USE_PERF_MONITOR 0
#if LV_USE_PERF_MONITOR
    #define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
#endif

/*1: 显示已用内存和内存碎片
 * 需要 LV_MEM_CUSTOM = 0*/
#define LV_USE_MEM_MONITOR 0
#if LV_USE_MEM_MONITOR
    #define LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
#endif

/*1: 在重绘区域上绘制随机彩色矩形*/
#define LV_USE_REFR_DEBUG 0

/*更改内置的 (v)snprintf 函数*/
#define LV_SPRINTF_CUSTOM 0
#if LV_SPRINTF_CUSTOM
    #define LV_SPRINTF_INCLUDE <stdio.h>
    #define lv_snprintf  snprintf
    #define lv_vsnprintf vsnprintf
#else   /*LV_SPRINTF_CUSTOM*/
    #define LV_SPRINTF_USE_FLOAT 0
#endif  /*LV_SPRINTF_CUSTOM*/

#define LV_USE_USER_DATA 1

/*垃圾回收器设置
 *如果lvgl绑定到高级语言并且内存由该语言管理时使用*/
#define LV_ENABLE_GC 0
#if LV_ENABLE_GC != 0
    #define LV_GC_INCLUDE "gc.h"                           /*包含垃圾回收器相关内容*/
#endif /*LV_ENABLE_GC*/

/*=====================
 *  编译器设置
 *====================*/

/*对于大端系统设置为1*/
#define LV_BIG_ENDIAN_SYSTEM 0

/*为 `lv_tick_inc` 函数定义自定义属性*/
#define LV_ATTRIBUTE_TICK_INC

/*为 `lv_timer_handler` 函数定义自定义属性*/
#define LV_ATTRIBUTE_TIMER_HANDLER

/*为 `lv_disp_flush_ready` 函数定义自定义属性*/
#define LV_ATTRIBUTE_FLUSH_READY

/*缓冲区所需的对齐大小*/
#define LV_ATTRIBUTE_MEM_ALIGN_SIZE 1

/*在需要内存对齐的地方添加(使用-Os时数据可能默认不对齐边界)。
 * 例如 __attribute__((aligned(4)))*/
#define LV_ATTRIBUTE_MEM_ALIGN

/*标记大型常量数组的属性，例如字体的位图*/
#define LV_ATTRIBUTE_LARGE_CONST

/*RAM中大数组声明的编译器前缀*/
#define LV_ATTRIBUTE_LARGE_RAM_ARRAY

/*将性能关键函数放入更快的内存中(例如RAM)*/
#define LV_ATTRIBUTE_FAST_MEM

/*在GPU加速操作中使用的变量前缀，这些变量通常需要放在DMA可访问的RAM段中*/
#define LV_ATTRIBUTE_DMA

/*将整型常量导出到绑定。此宏与形式为 LV_<CONST> 的常量一起使用，
 *这些常量也应出现在LVGL绑定API中，例如Micropython。*/
#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning /*默认值只是防止GCC警告*/

/*通过使用int32_t作为坐标而不是int16_t，将默认的-32k..32k坐标范围扩展到-4M..4M*/
#define LV_USE_LARGE_COORD 0

/*==================
 *   字体使用
 *===================*/

/*Montserrat字体，包含ASCII范围和一些符号，使用bpp = 4
 *https://fonts.google.com/specimen/Montserrat*/
#define LV_FONT_MONTSERRAT_8  1
#define LV_FONT_MONTSERRAT_10 1
#define LV_FONT_MONTSERRAT_12 1
#define LV_FONT_MONTSERRAT_14 1
#define LV_FONT_MONTSERRAT_16 1
#define LV_FONT_MONTSERRAT_18 1
#define LV_FONT_MONTSERRAT_20 1
#define LV_FONT_MONTSERRAT_22 1
#define LV_FONT_MONTSERRAT_24 1
#define LV_FONT_MONTSERRAT_26 1
#define LV_FONT_MONTSERRAT_28 1
#define LV_FONT_MONTSERRAT_30 1
#define LV_FONT_MONTSERRAT_32 1
#define LV_FONT_MONTSERRAT_34 1
#define LV_FONT_MONTSERRAT_36 1
#define LV_FONT_MONTSERRAT_38 1
#define LV_FONT_MONTSERRAT_40 1
#define LV_FONT_MONTSERRAT_42 1
#define LV_FONT_MONTSERRAT_44 1
#define LV_FONT_MONTSERRAT_46 1
#define LV_FONT_MONTSERRAT_48 1

/*演示特殊功能*/
#define LV_FONT_MONTSERRAT_12_SUBPX      0
#define LV_FONT_MONTSERRAT_28_COMPRESSED 0  /*bpp = 3*/
#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0  /*希伯来语、阿拉伯语、波斯语字母及其所有形式*/
#define LV_FONT_SIMSUN_16_CJK            0  /*1000个最常见的CJK部首*/

/*像素完美的等宽字体*/
#define LV_FONT_UNSCII_8  0
#define LV_FONT_UNSCII_16 0

/*可在此处声明自定义字体。
 *您也可以将这些字体作为默认字体，它们将在全局可用。
 *例如 #define LV_FONT_CUSTOM_DECLARE   LV_FONT_DECLARE(my_font_1) LV_FONT_DECLARE(my_font_2)*/
#define LV_FONT_CUSTOM_DECLARE

/*始终设置默认字体*/
#define LV_FONT_CUSTOM_DECLARE   LV_FONT_DECLARE(ShiYuan_black_Normal_16)
#define LV_FONT_DEFAULT &ShiYuan_black_Normal_16

/*启用处理大字体和/或具有大量字符的字体。
 *限制取决于字体大小、字体面和bpp。
 *如果字体需要，将触发编译器错误。*/
#define LV_FONT_FMT_TXT_LARGE 1

/*启用/禁用对压缩字体的支持。*/
#define LV_USE_FONT_COMPRESSED 0

/*启用子像素渲染*/
#define LV_USE_FONT_SUBPX 0
#if LV_USE_FONT_SUBPX
    /*设置显示的像素顺序。RGB通道的物理顺序。对于"正常"字体无关紧要。*/
    #define LV_FONT_SUBPX_BGR 0  /*0: RGB; 1:BGR 顺序*/
#endif

/*=================
 *  文本设置
 *=================*/

/**
 * 为字符串选择字符编码。
 * 您的IDE或编辑器应具有相同的字符编码
 * - LV_TXT_ENC_UTF8
 * - LV_TXT_ENC_ASCII
 */
#define LV_TXT_ENC LV_TXT_ENC_UTF8

/*可以在这些字符上打断(换行)文本*/
#define LV_TXT_BREAK_CHARS " ,.;:-_"

/*如果单词至少这么长，将在"最漂亮"的地方打断
 *要禁用，设置为 <= 0 的值*/
#define LV_TXT_LINE_BREAK_LONG_LEN 0

/*在打断前放在一行上的长单词中的最小字符数。
 *取决于 LV_TXT_LINE_BREAK_LONG_LEN。*/
#define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN 3

/*在打断后放在一行上的长单词中的最小字符数。
 *取决于 LV_TXT_LINE_BREAK_LONG_LEN。*/
#define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 3

/*用于信号文本重新着色的控制字符。*/
#define LV_TXT_COLOR_CMD "#"

/*支持双向文本。允许混合从左到右和从右到左的文本。
 *方向将根据Unicode双向算法处理：
 *https://www.w3.org/International/articles/inline-bidi-markup/uba-basics*/
#define LV_USE_BIDI 0
#if LV_USE_BIDI
    /*设置默认方向。支持的值：
    *`LV_BASE_DIR_LTR` 从左到右
    *`LV_BASE_DIR_RTL` 从右到左
    *`LV_BASE_DIR_AUTO` 检测文本基础方向*/
    #define LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO
#endif

/*启用阿拉伯语/波斯语处理
 *在这些语言中，字符应根据其在文本中的位置替换为其他形式*/
#define LV_USE_ARABIC_PERSIAN_CHARS 0

/*==================
 *  小部件使用
 *================*/

/*小部件文档：https://docs.lvgl.io/latest/en/html/widgets/index.html*/

#define LV_USE_ARC        1

#define LV_USE_ANIMIMG    1

#define LV_USE_BAR        1

#define LV_USE_BTN        1

#define LV_USE_BTNMATRIX  1

#define LV_USE_CANVAS     1

#define LV_USE_CHECKBOX   1

#define LV_USE_DROPDOWN   1   /*需要: lv_label*/

#define LV_USE_IMG        1   /*需要: lv_label*/

#define LV_USE_LABEL      1
#if LV_USE_LABEL
    #define LV_LABEL_TEXT_SELECTION 1 /*启用选择标签文本*/
    #define LV_LABEL_LONG_TXT_HINT 1  /*在标签中存储一些额外信息以加速绘制非常长的文本*/
#endif

#define LV_USE_LINE       1

#define LV_USE_ROLLER     1   /*需要: lv_label*/
#if LV_USE_ROLLER
    #define LV_ROLLER_INF_PAGES 7 /*当滚动条无限时的额外"页面"数*/
#endif

#define LV_USE_SLIDER     1   /*需要: lv_bar*/

#define LV_USE_SWITCH     1

#define LV_USE_TEXTAREA   1   /*需要: lv_label*/
#if LV_USE_TEXTAREA != 0
    #define LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500    /*毫秒*/
#endif

#define LV_USE_TABLE      1

/*==================
 * 额外组件
 *==================*/

/*-----------
 * 小部件
 *----------*/
#define LV_USE_CALENDAR   1
#if LV_USE_CALENDAR
    #define LV_CALENDAR_WEEK_STARTS_MONDAY 0
    #if LV_CALENDAR_WEEK_STARTS_MONDAY
        #define LV_CALENDAR_DEFAULT_DAY_NAMES {"周一", "周二", "周三", "周四", "周五", "周六", "周日"}
    #else
        #define LV_CALENDAR_DEFAULT_DAY_NAMES {"周日", "周一", "周二", "周三", "周四", "周五", "周六"}
    #endif

    #define LV_CALENDAR_DEFAULT_MONTH_NAMES {"一月", "二月", "三月",  "四月", "五月",  "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"}
    #define LV_USE_CALENDAR_HEADER_ARROW 1
    #define LV_USE_CALENDAR_HEADER_DROPDOWN 1
#endif  /*LV_USE_CALENDAR*/

#define LV_USE_CHART      1

#define LV_USE_COLORWHEEL 1

#define LV_USE_IMGBTN     1

#define LV_USE_KEYBOARD   1

#define LV_USE_LED        1

#define LV_USE_LIST       1

#define LV_USE_MENU       1

#define LV_USE_METER      1

#define LV_USE_MSGBOX     1

#define LV_USE_SPINBOX    1

#define LV_USE_SPINNER    1

#define LV_USE_TABVIEW    1

#define LV_USE_TILEVIEW   1

#define LV_USE_WIN        1

#define LV_USE_SPAN       1
#if LV_USE_SPAN
    /*一行文本可以包含的最大跨度描述符数量 */
    #define LV_SPAN_SNIPPET_STACK_SIZE 64
#endif

/*-----------
 * 主题
 *----------*/

/*一个简单、令人印象深刻且非常完整的主题*/
#define LV_USE_THEME_DEFAULT 1
#if LV_USE_THEME_DEFAULT

    /*0: 亮模式; 1: 暗模式*/
    #define LV_THEME_DEFAULT_DARK 0

    /*1: 启用按下时增长*/
    #define LV_THEME_DEFAULT_GROW 1

    /*默认过渡时间[毫秒]*/
    #define LV_THEME_DEFAULT_TRANSITION_TIME 80
#endif /*LV_USE_THEME_DEFAULT*/

/*一个非常简单的主题，是自定义主题的良好起点*/
#define LV_USE_THEME_BASIC 1

/*为单色显示器设计的主题*/
#define LV_USE_THEME_MONO 1

/*-----------
 * 布局
 *----------*/

/*类似于CSS中的Flexbox的布局。*/
#define LV_USE_FLEX 1

/*类似于CSS中的Grid的布局。*/
#define LV_USE_GRID 1

/*---------------------
 * 第三方库
 *--------------------*/

/*常见API的文件系统接口 */

/*fopen, fread等的API*/
#define LV_USE_FS_STDIO 0
#if LV_USE_FS_STDIO
    #define LV_FS_STDIO_LETTER '\0'     /*设置一个大写字母，驱动器将通过该字母访问(例如 'A')*/
    #define LV_FS_STDIO_PATH ""         /*设置工作目录。文件/目录路径将附加到其中。*/
    #define LV_FS_STDIO_CACHE_SIZE  0   /*>0 在lv_fs_read()中缓存此字节数*/
#endif

/*open, read等的API*/
#define LV_USE_FS_POSIX 0
#if LV_USE_FS_POSIX
    #define LV_FS_POSIX_LETTER '\0'     /*设置一个大写字母，驱动器将通过该字母访问(例如 'A')*/
    #define LV_FS_POSIX_PATH ""         /*设置工作目录。文件/目录路径将附加到其中。*/
    #define LV_FS_POSIX_CACHE_SIZE  0   /*>0 在lv_fs_read()中缓存此字节数*/
#endif

/*CreateFile, ReadFile等的API*/
#define LV_USE_FS_WIN32 1
#if LV_USE_FS_WIN32
    #define LV_FS_WIN32_LETTER  'D'    /*设置一个大写字母，驱动器将通过该字母访问(例如 'A')*/
    #define LV_FS_WIN32_PATH ""         /*设置工作目录。文件/目录路径将附加到其中。*/
    #define LV_FS_WIN32_CACHE_SIZE 0    /*>0 在lv_fs_read()中缓存此字节数*/
#endif

/*FATFS的API(需要单独添加)。使用f_open, f_read等*/
#define LV_USE_FS_FATFS  0
#if LV_USE_FS_FATFS
    #define LV_FS_FATFS_LETTER '\0'     /*设置一个大写字母，驱动器将通过该字母访问(例如 'A')*/
    #define LV_FS_FATFS_CACHE_SIZE 0    /*>0 在lv_fs_read()中缓存此字节数*/
#endif

/*PNG解码库*/
#define LV_USE_PNG 0

/*BMP解码库*/
#define LV_USE_BMP 0

/* JPG + 分割JPG解码库。
 * 分割JPG是为嵌入式系统优化的自定义格式。 */
#define LV_USE_SJPG 0

/*GIF解码库*/
#define LV_USE_GIF 0

/*二维码库*/
#define LV_USE_QRCODE 0

/*FreeType库*/
#define LV_USE_FREETYPE 0
#if LV_USE_FREETYPE
    /*FreeType用于缓存字符的内存[字节](-1: 无缓存)*/
    #define LV_FREETYPE_CACHE_SIZE (16 * 1024)
    #if LV_FREETYPE_CACHE_SIZE >= 0
        /* 1: 位图缓存使用sbit缓存, 0:位图缓存使用图像缓存。 */
        /* sbit缓存:对于小位图(字体大小 < 256)更内存高效 */
        /* 如果字体大小 >= 256，必须配置为图像缓存 */
        #define LV_FREETYPE_SBIT_CACHE 0
        /* 此缓存实例管理的最大打开FT_Face/FT_Size对象数。 */
        /* (0:使用系统默认值) */
        #define LV_FREETYPE_CACHE_FT_FACES 0
        #define LV_FREETYPE_CACHE_FT_SIZES 0
    #endif
#endif

/*Rlottie库*/
#define LV_USE_RLOTTIE 0

/*用于图像解码和播放视频的FFmpeg库
 *支持所有主要图像格式，因此不要同时启用其他图像解码器*/
#define LV_USE_FFMPEG  0
#if LV_USE_FFMPEG
    /*将输入信息转储到stderr*/
    #define LV_FFMPEG_AV_DUMP_FORMAT 0
#endif

/*-----------
 * 其他
 *----------*/

/*1: 启用为对象拍摄快照的API*/
#define LV_USE_SNAPSHOT 0

/*1: 启用Monkey测试*/
#define LV_USE_MONKEY   0

/*1: 启用网格导航*/
#define LV_USE_GRIDNAV  0

/*==================
* 示例
*==================*/

/*启用与库一起构建的示例*/
#define LV_BUILD_EXAMPLES 0

/*===================
 * 演示使用
 ====================*/

/*显示一些小部件。可能需要增加 `LV_MEM_SIZE` */
#define LV_USE_DEMO_WIDGETS        0
#if LV_USE_DEMO_WIDGETS
#define LV_DEMO_WIDGETS_SLIDESHOW  0
#endif

/*演示编码器和键盘的用法*/
#define LV_USE_DEMO_KEYPAD_AND_ENCODER     0

/*对系统进行基准测试*/
#define LV_USE_DEMO_BENCHMARK   0

/*LVGL的压力测试*/
#define LV_USE_DEMO_STRESS      0

/*音乐播放器演示*/
#define LV_USE_DEMO_MUSIC       1
#if LV_USE_DEMO_MUSIC
#define LV_DEMO_MUSIC_LARGE        0     /* 0: 小屏幕, 1: 大屏幕 */
#define LV_DEMO_MUSIC_AUTO_PLAY    0     /* 是否启动自动演示，可以与以下的屏幕模式兼容 */
#define LV_DEMO_MUSIC_SQUARE       1     /* 方形屏幕,方形圆形布局相同，可以同时为1 */
#define LV_DEMO_MUSIC_ROUND        0     /* 圆形屏幕,方形圆形布局相同，可以同时为1*/
#endif

/*--LV_CONF_H结束--*/

#endif /*LV_CONF_H*/

#endif /*"内容启用"结束*/
